Resumen de la Sintaxis de HubL (HubSpot Markup Language)
HubL es el lenguaje de marcado (no de programacion) utilizado por el CMS de HubSpot, basado en Jinjava y diseñado específicamente para la plataforma. A continuación, se presentan los conceptos básicos de la sintaxis de HubL:
Delimitadores
HubL se integra en HTML usando símbolos especiales:
{% %}
para declaraciones (no imprimen nada). Sirven para escribir variables, usar modulos, condicionales, lops y demas.
{% set blog_title = isEnglish ? "Our Blog" : "Nuestro Blog" %}
{{ }}
para expresiones (imprimen valores).
<h1 class="blog-index-header__title">{{ blog_title }}</h1>
{# #}
para comentarios.
{# Este es un comentario #}
Módulos
Los módulos son áreas dinámicas de una plantilla que pueden personalizarse en el editor de contenido. Contienen una parte para HTML, CSS y JS
<section class="blog-index-header">
<div class="content-wrapper content-wrapper--narrow">
{% if module.title %}
<h1 class="blog-index-header__title">{{ module.title }}</h1>
{% else %}
<h1 class="blog-index-header__title">{{ group.public_title }}</h1>
{% endif %}
{% if module.subtitle %}
<p class="blog-index-header__subtitle">{{ module.subtitle }}</p>
{% else %}
<p class="blog-index-header__subtitle">{{ group.description }}</p>
{% endif %}
</div>
</section>
Variables y Macros
HubL permite definir variables y macros para reutilizar código. Las macros son útiles para repetir bloques de código con valores dinámicos. No se usaron.
{% set primaryColor = '#F7761F' %} {# defines variable and assigns HEX color #}
a {
color: {{ primaryColor }}; {# prints variable HEX value #}
}
{% macro trans(value) %}
-webkit-transition: {{value}};
-moz-transition: {{value}};
-o-transition: {{value}};
-ms-transition: {{value}};
transition: {{value}};
{% endmacro %}
a {
{{ trans("all .2s ease-in-out") }}
}
Condicionales y Bucles
HubL permite el uso de:
- Condicionales: Declaraciones
if
,endif
,else
.
{% if tag %}
<p>Posts about:</p>
<h2>{{ page_meta.html_title|split(' | ')|last }}</h2>
{% endif %}
- Bucles:
for
para iterar sobre secuencias de datos.
{% for tag in content.tag_list %}
<a class="blog-tag" href="{{ blog_tag_url(group.id, tag.slug) }}">{{ tag.name }}</a>
{% endfor %}
Otras Características
- Escapar delimitadores: Para usar un delimitador de HubL en otro lenguaje.
- Incluir archivos: Posibilidad de incluir múltiples archivos
.html
dentro de una plantilla de HubL. - Bloques: Crear bloques que extienden plantillas principales.
Esta guía proporciona una visión general de la sintaxis y las capacidades de HubL para facilitar el desarrollo de plantillas en HubSpot.